Skip to content

0.4.0: переход на стандарт 2.3.2 - #35

Merged
EgorGruzdev merged 6 commits into
masterfrom
feat/0.4.0
Sep 22, 2026
Merged

EgorGruzdev merged 6 commits into
masterfrom
feat/0.4.0

Conversation

@EgorGruzdev

Copy link
Copy Markdown
Contributor

Переход на стандарт 1С:DirectBank 2.3.2 — milestone 0.4.0.

2.3.2 — последняя версия стандарта: схемы после неё не менялись. Методы, заголовки и параметры транспортного протокола по сравнению с 2.2.2 те же.

Версия

  • версия по умолчанию 2.3.2: APIVersion, AvailableAPIVersion, formatVersion создаваемых документов — Переход на стандарт 2.3.2: версия по умолчанию и схемы #22
  • FormatVersion::setDefault('2.2.2') одной настройкой переключает клиента и создаваемые документы для банка, который поддерживает только 2.2.x; разобранные документы сохраняют версию из XML
  • в тестах схемы и официальные примеры 2.3.2, схемы 2.2.2 — в tests/Fixture/xsd/2.2.2; документы, собранные в каждой версии, проходят её схемы

Новое в 2.3.x

Изменения поведения

  • по умолчанию клиент и документы используют версию 2.3.2 вместо 2.2.2; для банка на 2.2.x — FormatVersion::setDefault('2.2.2')
  • контейнер в SendPack уходит с UTF-8 BOM
  • настройка apiVersion по умолчанию null — берётся FormatVersion::getDefault()

- версия формата по умолчанию 2.3.2: APIVersion, AvailableAPIVersion,
  formatVersion создаваемых документов
- FormatVersion::setDefault() задаёт версию для клиента и создаваемых
  документов, например 2.2.2 для банка, который поддерживает только 2.2.x;
  разобранные документы сохраняют версию из XML
- в тестах схемы и официальные примеры 2.3.2, схемы 2.2.2 — в
  tests/Fixture/xsd/2.2.2; документы каждой версии проходят её схемы
- DocKind::LETTER (40)

Closes #22
С версии 2.3.x контейнер и файлы вложений всегда передаются с BOM.
Входящие ответы и документы с BOM разбираются.

Closes #31
- Letter для отправки и разбора: номер, дата, тип, тема, текст, вложения,
  связанный документ, ID переписки
- BinaryFileType::fromContents() и fromFile() считают размер и CRC32
  вложения, isIntact() проверяет их у полученного файла
- вложения передаются как есть: BOM для текстовых файлов добавляет
  вызывающий код

Closes #34
@EgorGruzdev EgorGruzdev added this to the 0.4.0 milestone Sep 22, 2026
@EgorGruzdev
EgorGruzdev merged commit 239b359 into master Sep 22, 2026
12 checks passed
@EgorGruzdev
EgorGruzdev deleted the feat/0.4.0 branch September 22, 2026 22:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant